package com.hzw.saas.api.rss;

import java.util.List;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.hzw.saas.api.rss.bo.JournalArticleBO;
import com.hzw.saas.api.rss.query.JournalArticleFavQuery;
import com.hzw.saas.common.config.util.PageParam;

/**
 * <p>
 * 期刊摘要
 服务类
 * </p>
 *
 * @author sonam
 * @since 2021-06-30
 */
public interface IJournalArticleService {

    /**
     * 主键查询
     * @param pid
     * @return
     */
    JournalArticleBO getById(String pid);

    /**
     * 通用的检索
     * @param journalArticleBO
     * @return
     */
    List<JournalArticleBO> query(JournalArticleBO journalArticleBO);

    /**
     * 通用的更新接
     * @param journalArticleBO
     */
    void update(JournalArticleBO journalArticleBO);

    /**
     * 通用的删除
     * @param journalArticleBO
     */
    void delete(JournalArticleBO journalArticleBO);

    /**
     * 主键删除
     * @param pid
     */
    void delete(String pid);

    /**
     *  收藏/取消收藏
     * @param articleFavQuery
     */
    void collectArticle(JournalArticleFavQuery articleFavQuery);

    /**
     *
     * @param ids
     * @return
     */
    List<JournalArticleBO> findJournalArticleByIds(List<String> ids);

    /**
     * 批量插入
     * @param journalArticleBO
     */
    void saveBatch(List<JournalArticleBO> journalArticleBO);

    /**
     * 批量更新
     * @param journalArticleBO
     */
    void updateBatch(List<JournalArticleBO> journalArticleBO);

    /**
     * 根据rssId列表查询文章
     * @param rssIds
     * @return
     */
    List<JournalArticleBO> findJournalArticleByJournalIds(List<String> rssIds);

    /**
     * 根据rssId列表分页查询文章
     * @param rssIds
     * @param pageParam
     * @return
     */
    IPage<JournalArticleBO> findJournalArticlePage(List<String> rssIds, PageParam pageParam);


    /**
     * 查询我的收藏
     * @param pageParam
     * @param userId
     * @return
     */
    IPage<JournalArticleBO> findMyCollection(PageParam pageParam, String userId);


    List<JournalArticleBO> findByIdentifer(List<String> collect);

    List<JournalArticleBO> findAll();

    /**
     * 查询重复的数量
     * @param digest
     * @return
     */
    Integer findRepeatDigestCount(String digest);

    /**
     * 查询重复插入的数据
     * @return
     */
    List<JournalArticleBO> findRepeatInsert();

    /**
     * 全部删除
     */
    void deleteAll();

    List<JournalArticleBO> findByJournalIds(List<String> journalIds);

    /**
     * 图片处理
     */
    void pictureHandle(String url);

    List<JournalArticleBO> findByIds(List<String> articleId);


}
